
@keyframes bounceInLeft {
  0%, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
  }

  0% {
    opacity: 0
    -webkit-transform: translate3d(-300px, 0, 0)
    transform: translate3d(-300px, 0, 0)
  }

  to {
    -webkit-transform: translateZ(0)
    transform: translateZ(0)
  }
}

.bounceInLeft {
  -webkit-animation-name: bounceInLeft
  animation-name: bounceInLeft
}

@keyframes showBounce {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    -webkit-transform: translate3d(110%, 0, 0)
    transform: translate3d(110%, 0, 0)
  }

  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    -webkit-transform: translate3d(0, 0, 0)
    transform: translate3d(0, 0, 0)
  }
}

@keyframes hiddenBounce {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    -webkit-transform: translate3d(0, 0, 0)
    transform: translate3d(0, 0, 0)
  }

  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    -webkit-transform: translate3d(110%, 0, 0)
    transform: translate3d(110%, 0, 0)
  }
}

.showSearch {
  -webkit-animation-name: showBounce
  animation-name: showBounce
}

.hiddenSearch {
  -webkit-animation-name: hiddenBounce
  animation-name: hiddenBounce
}

.showToc {
  -webkit-animation-name: showBounce
  animation-name: showBounce
}

.hiddenToc {
  -webkit-animation-name: hiddenBounce
  animation-name: hiddenBounce
}

@keyframes showMenuMask {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
  }

  0% {
    opacity: 0
    -webkit-transform: translate3d(0, -100%, 0)
    transform: translate3d(0, -100%, 0)
  }

  60% {
    opacity: 1
    -webkit-transform: translate3d(0, 25px, 0)
    transform: translate3d(0, 25px, 0)
  }

  75% {
    -webkit-transform: translate3d(0, -10px, 0)
    transform: translate3d(0, -10px, 0)
  }

  90% {
    -webkit-transform: translate3d(0, 5px, 0)
    transform: translate3d(0, 5px, 0)
  }

  to {
    -webkit-transform: translate3d(0, 0, 0)
    transform: translate3d(0, 0, 0)
  }
}

@keyframes hideMenuMask {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
  }

  0% {
    -webkit-transform: translate3d(0, 0, 0)
    transform: translate3d(0, 0, 0)
  }

  30% {
    -webkit-transform: translate3d(0, -10px, 0)
    transform: translate3d(0, -10px, 0)
  }

  50% {
    -webkit-transform: translate3d(0, 25px, 0)
    transform: translate3d(0, 25px, 0)
  }

  to {
    -webkit-transform: translate3d(0, -100%, 0)
    transform: translate3d(0, -100%, 0)
  }
}

.showMenuMask {
  -webkit-animation-name: showMenuMask
  animation-name: showMenuMask
}

.hideMenuMask {
  -webkit-animation-name: hideMenuMask
  animation-name: hideMenuMask
}

@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
  }

  from {
    opacity: 0
    -webkit-transform: translate3d(300px, 0, 0)
    transform: translate3d(300px, 0, 0)
  }

  to {
    -webkit-transform: translate3d(0, 0, 0)
    transform: translate3d(0, 0, 0)
  }
}

.bounceInRight {
  -webkit-animation-name: bounceInRight
  animation-name: bounceInRight
}

@keyframes fadeIn {
  from {
    opacity: 0
    -webkit-transform: translate3d(0, 5%, 0)
    transform: translate3d(0, 5%, 0)
  }

  to {
    opacity: 1
    -webkit-transform: translate3d(0, 0, 0)
    transform: translate3d(0, 0, 0)
  }
}

.fadeIn {
  -webkit-animation-name: fadeIn
  animation-name: fadeIn
}

@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1)
    transform: scale3d(1, 1, 1)
  }

  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)
  }

  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
  }

  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
  }

  to {
    -webkit-transform: scale3d(1, 1, 1)
    transform: scale3d(1, 1, 1)
  }
}

.tada {
  -webkit-animation-name: tada
  animation-name: tada
}

@keyframes heartBeat {
  0% {
    -webkit-transform: scale(1)
    transform: scale(1)
  }

  14% {
    -webkit-transform: scale(1.3)
    transform: scale(1.3)
  }

  28% {
    -webkit-transform: scale(1)
    transform: scale(1)
  }

  42% {
    -webkit-transform: scale(1.3)
    transform: scale(1.3)
  }

  70% {
    -webkit-transform: scale(1)
    transform: scale(1)
  }
}

.heartBeat {
  -webkit-animation-name: heartBeat
  animation-name: heartBeat
  -webkit-animation-duration: 1.3s
  animation-duration: 1.3s
  -webkit-animation-timing-function: ease-in-out
  animation-timing-function: ease-in-out
}

.animated {
  -webkit-animation-duration: 1s
  animation-duration: 1s
  -webkit-animation-fill-mode: both
  animation-fill-mode: both
}

.animated.infinite {
  -webkit-animation-iteration-count: infinite
  animation-iteration-count: infinite
}

.animated.delay-0.4s {
  -webkit-animation-delay: 0.4s
  animation-delay: 0.4s
}

.animated.delay-0.7s {
  -webkit-animation-delay: 0.7s
  animation-delay: 0.7s
}

.animated.fast {
  -webkit-animation-duration: 800ms
  animation-duration: 800ms
}

@media (print: ), (prefers-reduced-motion: reduce) {
  .animated {
    -webkit-animation-duration: 1ms !important
    animation-duration: 1ms !important
    -webkit-transition-duration: 1ms !important
    transition-duration: 1ms !important
    -webkit-animation-iteration-count: 1 !important
    animation-iteration-count: 1 !important
  }
}